<!DOCTYPE>
<!--
 * Copyright (c) 2009 The iPandi Studio. All rights reserved  
 -->
<html>
<script type="text/javascript" charset="utf-8" src="http://bit.ly/javascript-api.js?version=latest&login=jozak&apiKey=R_4e0198af47b8329fcd54770381e34d69"></script>
<script>
 
/* 
 	 	//Comprueba si la URL es válida para mostrar el icono
 	 	function compruebaURL(url){
 	 		console.log("Estamos en el tab: " + url);
 	 		
 	 		var resultado=false;
 	 		var patt1=new RegExp("chrome://");
 	 		var patt2=new RegExp("chrome-extension://");
 	 		var patt3=new RegExp("facebook.com");
 	 		
 	 		resultado=!(patt1.test(url) || patt2.test(url) || patt3.test(url)) && (url!="");
 	 		
 	 		return resultado;
 	 		
 	 	} 
 	 */
 	//window.localStorage.https = "";
 	 	 
 	var arrayUrl = new Array(
 		"chrome://",
 		"chrome-extension://",
 		"facebook.com"
 	); //Contiene la lista de Urls no validas
 	
 	//Añade el https al array de direcciones no validas
 	function addURLArray() {
 		if (window.localStorage.getItem('sharehttps') == "false") {
 			if (arrayUrl[0] == "https://") {
 				arrayUrl.shift("https://");
 			}
 		} else {
 			if (arrayUrl[0] != "https://") {
 				arrayUrl.unshift("https://");
 			}
 		}
 	}
 	
 	//Comprueba si la URL es válida para mostrar el icono
 	function compruebaURL(url){
 		console.log("Estamos en el tab: " + url);
 		
 		var i=0;
 		var resultado=false;		

 		for (i=0;i<arrayUrl.length;i++){
 			var patt1=new RegExp(arrayUrl[i]);
 			resultado = resultado || patt1.test(url);
 		}

 		return !(resultado || (url.length==0));		
 	}

	//Abre una nueva TAB con la URL de Facebook
	function abreTabFb(url,titulo){
	
		//izak
		var urls=url;
		if (window.localStorage.getItem('urlShorter') == "true") {
	    	BitlyClient.shorten(url,'BitlyCB.shortenResponse');
	    	urls=window.localStorage.getItem('shorterUrl');
	    }
	    //izak
		var urlTab="http://www.facebook.com/sharer.php?u=" + urls + "&t=" + titulo;
		chrome.tabs.create({url: urlTab});
	}
	
	//Muestra/oculta el icono
	function muestraIcono(tab){
		
		console.log("muestraIcono() " + compruebaURL(tab.url));
		addURLArray();
		if (compruebaURL(tab.url)){
			chrome.pageAction.show(tab.id);
			//chrome.pageAction.setTitle({tabId:tab.id ,title:"Click to share on Facebook..."});
		}else
			chrome.pageAction.hide(tab.id);  
						 
	}
	
	//izak
	//Trata la respuesta que retorna de bit.ly
	BitlyCB.shortenResponse = function(data) {
		var s = '';
		var first_result;
		// Results are keyed by longUrl, so we need to grab the first one.
		for (var r in data.results) {
			first_result = data.results[r]; break;
		}
		for (var key in first_result) {
			s += key + ":" + first_result[key].toString() + "\n";
		}
		//Guardamos la url corta en window.localStorage
		window.localStorage.setItem('shorterUrl',first_result['shortUrl'].toString());
	}
	//izak
	
	//Cuando cambiamos de tab, hay que refrescar
  	chrome.tabs.onSelectionChanged.addListener(function(tabId) {
  		console.log("E_TabChanged()");
  		
  		//Tenemos el id del tab, tenemos que leer sus propiedades para poder ver la URL
  		chrome.tabs.get(tabId,function(tab){
  			muestraIcono(tab);
  		});

  	});
  	
  	//Cuando se selecciona una tab, hay que ver si hace falta mostrar el icono
  	chrome.tabs.getSelected(null, function(tab) {
  		console.log("E_TabSelected()");
  		
		muestraIcono(tab);
  	});
  	
  	//Cuando se actualiza una tab (por ejemplo: creamos una nueva, escribimos la URL y pulsamos intro) tenemos que chequear la nueva URL
  	chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
  		console.log("E_TabUpdate()");
  		
  		muestraIcono(tab);
  	});
 
 	//Cuando el usuario clica el icono
 	chrome.pageAction.onClicked.addListener(function(tab) {
 		console.log("E_Click()");
 		
 		chrome.windows.getCurrent(function(window) {
 			if (window.focused) {
 			
 				abreTabFb(tab.url,tab.title);
 				
 			}
 		});
 	});
 
</script>

</html>